package ca.qc.bdeb.jeuxdesboites.model;

import ca.qc.bdeb.jeuxdesboites.commun.Coup;
import ca.qc.bdeb.jeuxdesboites.commun.IDJoueurs;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Eric Wenaas <eric.wenaas@bdeb.qc.ca>
 */
public class CoupFacile implements AnalyseAI {

    @Override
    public ArrayList<Coup> analyserPosition(TableauJeu position) {
        ArrayList<Coup> reponse = new ArrayList<>();
        Coup coupFacile = trouverCoupFacile(position);
        if (coupFacile != null) {
            reponse.add(coupFacile);
        }
        return reponse;
    }
    
    /*
     * Un coup facile est une case qui permet de fermer une boîte.
     */
    private static Coup trouverCoupFacile(TableauJeu tableau) {
        Coup coupFacile = null; 
        ArrayList<Coup> coupsCandidats = tableau.determinerCandidats();
        for (Coup unCoup : coupsCandidats) {
            boolean boiteFermee = tableau.jouerCoup(IDJoueurs.JOUEUR_ARTIFICIEL, unCoup);
            if (boiteFermee) {
                coupFacile = unCoup;
                tableau.dejouerCoup(unCoup);
                break;
            }
            tableau.dejouerCoup(unCoup);
        }
        return coupFacile;
    }
}
